﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gco;

namespace Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gmd
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDQ_Completeness_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_CompletenessCommission_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_CompletenessOmission_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDQ_LogicalConsistency_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_ConceptualConsistency_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_DomainConsistency_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_FormatConsistency_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_TopologicalConsistency_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDQ_PositionalAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_AbsoluteExternalPositionalAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_GriddedDataPositionalAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_RelativeInternalPositionalAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDQ_ThematicAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_ThematicClassificationCorrectness_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_NonQuantitativeAttributeAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_QuantitativeAttributeAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDQ_TemporalAccuracy_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_AccuracyOfATimeMeasurement_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_TemporalConsistency_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DQ_TemporalValidity_Type))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.isotc211.org/2005/gmd")]
    public abstract class AbstractDQ_Element_Type : AbstractObject_Type
    {
        private System.Collections.ObjectModel.Collection<CharacterString_PropertyType> _nameOfMeasure = new System.Collections.ObjectModel.Collection<CharacterString_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("nameOfMeasure")]
        public System.Collections.ObjectModel.Collection<CharacterString_PropertyType> NameOfMeasure { get { return this._nameOfMeasure; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("measureIdentification")]
        public MD_Identifier_PropertyType MeasureIdentification { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("measureDescription")]
        public CharacterString_PropertyType MeasureDescription { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("evaluationMethodType")]
        public DQ_EvaluationMethodTypeCode_PropertyType EvaluationMethodType { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("evaluationMethodDescription")]
        public CharacterString_PropertyType EvaluationMethodDescription { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("evaluationProcedure")]
        public CI_Citation_PropertyType EvaluationProcedure { get; set; }

        private System.Collections.ObjectModel.Collection<DateTime_PropertyType> _dateTime = new System.Collections.ObjectModel.Collection<DateTime_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("dateTime")]
        public System.Collections.ObjectModel.Collection<DateTime_PropertyType> DateTime { get { return this._dateTime; } }

        private System.Collections.ObjectModel.Collection<DQ_Result_PropertyType> _result = new System.Collections.ObjectModel.Collection<DQ_Result_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("result")]
        public System.Collections.ObjectModel.Collection<DQ_Result_PropertyType> Result { get { return this._result; } }
    }
}
